package com.mastercard.ganadores.struts.Action;

import com.mastercard.ganadores.struts.Form.basicForm;
import com.mastercard.ganadores.util.to.Util;
import com.mastercard.ganadores.util.to.userLogin;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

public class agendaAction extends Action {

    public ActionForward execute(
            ActionMapping mapping,
            ActionForm form,
            HttpServletRequest request,
            HttpServletResponse response)
            throws
            IOException,
            ServletException
    {
        
        // en caos de null
        if (!Util.isLoggedIn(request)) {
            return mapping.findForward("noLogin");
        }

        // toma el userLogin
        userLogin user = Util.getUserLogin(request);

        // en caso de null
        if (user == null) {
            return mapping.findForward("noLogin");
        }
        
        basicForm f = ( basicForm ) form ;        
        System.out.println( "(^_^)===clave " + f.getCve( ) + "(^_^)===nombre " + f.getNombre( ) ) ;
        
        String ruta = getServlet( ).getServletContext( ).getRealPath("http://mastercard.codice.com/Ganador"),//("http://localhost:8080/ganador") ,
                temporal = "" , agendaNombre = "Agenda-"+f.getCve( )+"_"+ f.getNombre( ) ;
        
        System.out.println( "(^_^)===nombre del agenda " + agendaNombre ) ;
//        request.setAttribute("ruta", ruta);
//        request.setAttribute("agenda", agendaNombre);
//        request.setAttribute("cve", f.getCve( ));
//        request.setAttribute("name", f.getNombre());
        
// LOCAL       ruta = ruta.substring( 0 , 62 ) ;
        ruta = ruta.substring( 0 , 50 ) ;
////        ruta = ruta + "MasterCard\\WebContent\\WEB-INF\\agenda\\" + agendaNombre ;
        ruta = ruta + "MasterCard/WEB-INF/agenda/" + agendaNombre ;
        
        System.out.println("(^_^)=== ruta de la agenda " + ruta) ;        
        
        File archivo = new File( ruta ) ;
        
        if( archivo == null ) {
            System.out.println("(P_P)=== NO HAY AGENDA" ) ;
            return null ;            
        } else {
            
             temporal = archivo.getAbsolutePath( ) ;
            System.out.println("(^_^)=== ruta temporal " + temporal) ;
            try
			{
				FileInputStream out = new FileInputStream( temporal ) ;
				byte[ ] read = new byte[ out.available( ) ] ;
				out.read( read ) ;
				out.close( ) ;

                                response.setHeader("Expires", "0");
                                response.setHeader("Cache-Control","must-revalidate, post-check=0, pre-check=0");
                                response.setHeader("Pragma", "public");
                                response.setHeader("Content-Disposition", "attachment;filename=Agenda.pdf") ;
                                // Configuramos el content type
                                response.setContentType("application/pdf");

				
				response.getOutputStream( ).write( read ) ;
				response.getOutputStream( ).close( ) ;
				
			}catch( Exception e )
			{
				return null ;
			}
            
        }
        
        return null ;
        
    }
    
}
